1. Field of the Invention
This invention relates generally to embedding objects, and more particularly, to embedding, editing, saving and restoring objects within a browser window.
2. Description of the Related Art
One of the key features of modern word processors like OpenOffice from Sun Microsystems (Santa Clara, Calif.) and Microsoft Word from Microsoft Corp. (Redmond, Wash.) is the ability to embed higher order objects into a document. For example, while editing, it is possible to embed a chart, picture, spreadsheet, or other rich content into the text document. Furthermore, it is possible to edit the embedded content while remaining within the context of the word processing application. In a desktop environment, this is typically accomplished by invoking the host application used by the embedded object (e.g., a spreadsheet application if the embedded object is a spreadsheet). The user experience in such an instance is that the embedded object becomes editable and the functions of the application used by the embedded object become available to the user while he is editing the object. It is possible to embed different documents and/or objects (possibly based on different desktop applications) within one document. For instance, a user can embed a spreadsheet created in Microsoft Excel and a document created in Adobe Acrobat from Adobe (San Jose, Calif.) within a document created using Word from Microsoft. When a user later wishes to edit or modify any of the embedded objects, he simply double-clicks on the embedded object, whereupon the corresponding desktop application (e.g., Microsoft Excel) opens up on the user's computer, and the user can then proceed to edit the embedded object within the application that was used to create it. Any changes made to the object are saved, and are reflected in the container document (in this example, the Microsoft Word document).
This powerful capability has typically been enabled by using a component embedding model such as Microsoft's COM/DCOM or IBM's DSOM and has been strictly within the domain of fat desktop applications and office suites.
The above-discussed functionality is based upon Object Linking and Embedding (OLE) technology. OLE is a distributed object system and protocol developed by Microsoft. OLE takes advantage of and is a part of the larger, more general concept, the Component Object Model (COM) and its distributed version DCOM. OLE allows an editor to send out part of a document to another editor and then reimport it. OLE is based upon a fat client architecture, which means that the file type or the application which is being embedded must be present on the machine which is being operated upon. For instance, if a Microsoft Excel spreadsheet is to be manipulated or even viewed, then there must be a copy of Excel or an Excel viewer installed on the user's machine.
The concept of embedding is also used in the context of multimedia in Web pages, where video, animation (including Flash animations), and audio files are embedded within the hypertext markup language (such as HTML or XHTML) or other structural markup language used (such as XML or SGML). However, in these instances, it is not possible to modify the embedded content while remaining within the context of the container document, and to save the changes, so as to have those changes be seamlessly reflected while remaining within the context of the container document in which the content is embedded.
Thus there is a need for a method and system for embedding objects within a browser window, and for seamlessly editing, saving and restoring objects within the browser window, where the embedded objects are not supported by underlying desktop applications which need to be present on the user's machine.